#include<string>
#include<iostream>
using namespace std;

class Person{

public:
	Person(){

	cout<<"gouzaohanshu"<<endl;
}
	Person(int m_a){
	this->m_a = m_a;
	cout<<"youcan gouzaohanshu"<<endl;
}
	Person(const Person &p){
	cout<<"kaobei gouzaohanshu"<<endl;
}
	Person& addm(const Person &p){
	this->m_a += p.m_a;	
	return *this;
}
	~Person(){
}
	int m_a;
};
void test01(){
	Person p1(20);
	Person p2(10);
	cout<<"p1 m: "<<p1.m_a<<endl;
	p2.addm(p1).addm(p1);
	cout<<"p2 m: "<<p2.m_a<<endl;
	
}
class Base {
public:
	int a = 10;
	void func(){
		cout<<"Base func"<<endl;
	}
	void func(int a){
		cout<<"Base func(int a)"<<endl;
	}
};
class Son:public Base {
public:
	int a = 20;
	void func(){
		cout<<"Son func"<<endl;
	}
};
void test02(){
	Son s;
	s.func();
	s.Base::func();
	s.Base::func(10);
}
int main (){
	test02();
	return 0;
}
